from selenium import webdriver as web
from appium import webdriver as app

class DriverUtils:

    # 私有的属性
    # 因为我们有3个端 所以我们创建3个driver实例对象
    __mp_driver=None
    __mis_driver=None
    __app_driver=None

    # 类方法  DriverUtils.get_driver()
    @classmethod
    def get_mp_driver(cls):

        # 先判断 cls.__driver 是否为None
        if cls.__mp_driver is None:
            # 如果为None 应该实现 初始化
            cls.__mp_driver=web.Chrome()
            cls.__mp_driver.maximize_window()
            cls.__mp_driver.implicitly_wait(10)
            #访问页面
            cls.__mp_driver.get('http://pc-toutiao-python.itheima.net/#/login')

            # 完成初始化
        return cls.__mp_driver
        # else:
        #     # 说明 cls.__driver 有值
        #     # 直接返回
        #     return cls.__driver

    @classmethod
    def quit_mp_driver(cls):

        cls.__mp_driver.quit()
        # 把 私有的属性 __driver 设置为 None
        # 确保我们的属性值 真的为None
        cls.__mp_driver=None

    @classmethod
    def get_mis_driver(cls):
        if cls.__mis_driver is None:
            cls.__mis_driver=web.Chrome()
            cls.__mis_driver.maximize_window()
            cls.__mis_driver.implicitly_wait(10)
            cls.__mis_driver.get('http://ttmis.research.itcast.cn/')
        return cls.__mis_driver

    @classmethod
    def quit_mis_driver(cls):
        if cls.__mis_driver:
            cls.__mis_driver.quit()
            cls.__mis_driver=None


    @classmethod
    def get_app_driver(cls):
        if cls.__app_driver is None:
            caps = {
                'platformName': 'Android',
                'platformVersion': '5.1.1',
                'deviceName': 'xxxx',
                'appPackage': 'com.android.settings',
                'appActivity': '.Settings'
            }
            cls.__app_driver=app.Remote('http://127.0.0.1:4723/wd/hub',
                                        desired_capabilities=caps)

            cls.__app_driver.implicitly_wait(10)

        return cls.__app_driver
    @classmethod
    def quit_app_driver(cls):
        if cls.__app_driver:
            cls.__app_driver.quit()
            cls.__app_driver=None


# 写完代码最好测试一下
from time import sleep
if __name__ == '__main__':

    DriverUtils.get_mp_driver()
    sleep(2)
    DriverUtils.quit_mp_driver()

    DriverUtils.get_mis_driver()
    sleep(2)
    DriverUtils.quit_mis_driver()

    DriverUtils.get_app_driver()
    sleep(2)
    DriverUtils.quit_app_driver()

    # sssssgitddd